package com.smartleanx.module.hrm.dal.mysql.companysystememployee;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.smartleanx.framework.common.pojo.PageResult;
import com.smartleanx.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.smartleanx.framework.mybatis.core.mapper.BaseMapperX;
import com.smartleanx.module.hrm.controller.admin.companysystememployee.vo.CompanySystemEmployeePageReqVO;
import com.smartleanx.module.hrm.dal.dataobject.companysystememployee.CompanySystemEmployeeDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.Collection;
import java.util.List;

/**
 * 公司制度已学习人员 Mapper
 *
 * @author 精益大师
 */
@Mapper
public interface CompanySystemEmployeeMapper extends BaseMapperX<CompanySystemEmployeeDO> {

    default PageResult<CompanySystemEmployeeDO> selectPage(CompanySystemEmployeePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<CompanySystemEmployeeDO>()
                .inIfPresent(CompanySystemEmployeeDO::getCompanySystemId, reqVO.getCompanySystemId())
                .eqIfPresent(CompanySystemEmployeeDO::getEmployeeId, reqVO.getEmployeeId())
                .orderByDesc(CompanySystemEmployeeDO::getId));
    }
    default List<CompanySystemEmployeeDO> getListByCompanySystemIds(Collection<Long> ids){
        return selectList(new LambdaQueryWrapperX<CompanySystemEmployeeDO>()
        .inIfPresent(CompanySystemEmployeeDO::getCompanySystemId,ids));
    }
    default List<CompanySystemEmployeeDO> getCompanySystemLearned(Long employeeId,Long companySystemId){
        return selectList(new LambdaQueryWrapper<CompanySystemEmployeeDO>()
        .eq(CompanySystemEmployeeDO::getCompanySystemId,companySystemId)
        .eq(CompanySystemEmployeeDO::getEmployeeId,employeeId));
    }

}
